1. Field of the Invention
This invention relates generally to electronic imaging devices and more particularly to a system and method of dynamically updating software-driven features in an electronic imaging device.
2. Description of the Background Art
Modern digital cameras are capable of providing not only image capture capabilities but also image storage and manipulation capabilities. Powerful software tools which once were executed on an external computer workstation are now capable of execution within the digital camera itself. However, the miniaturization of digital cameras presents severe data memory shortage problems. Digital cameras are typically smaller than laptop computers and personal digital assistants, and yet image manipulation is one of the most memory intensive forms of digital processing. With current memory technology it is not possible to have enough memory in a typical digital camera to simultaneously store all of a typical user's desired software. Moreover, new and better software may be developed after the purchase of a particular digital camera by a consumer. Updating the application software may be difficult after the sale of the digital camera to the consumer.
One method for dealing with this problem is to use removable memory devices, such as floppy disks or non-volatile semiconductor memory cards. A user may select a set of these which may satisfy his or her needs on a given occasion, and insert them into the digital camera when the software feature on a given removable device is required. An example of this is given in U.S. Pat. No. 5,477,264, issued to Sarbadhikari, et al. Sarbadhikari discusses using a removable memory card to import new application programs and algorithms. It is important to recognize that Sarbadhikari teaches the loading of application programs into that RAM which already exists in the digital camera. This requires not only rebooting the system but also that sufficient RAM exists to accommodate the new software.
It is well known in the art that a floppy disk may be inserted into a computer while the computer is running, and that the computer's operating system will recognize the files on the floppy disk. A more recent development is the "hot-mount" circuit card, such as those manufactured to specifications promulgated by the Personal Computer Memory Card International Association (PCMCIA). Here hot-mount refers to a property where the card may safely be inserted into a bus connector on a powered-on and operating computer. The hot-mount circuit card may also be recognized by the computer's operating system.
However there are currently limitations to what may be done with removable memory devices. Data may be entered via a removable memory device, and the existing applications may operate on this data. Application programs may be loaded from the removable memory device, and these may be executed without rebooting the computer. But changing the version of the application program or adding features via modularized code to the application program requires reinitializing the application program and the operating system through the process of rebooting. It is well known in the present art that to display new software functions of an application program in a graphic user interface menu or to run a newly-updated software program requires rebooting the operating system.
The need for rebooting after each addition of modular code to an existing application program undermines the utility of using removable memory devices in a digital camera. Each time a removable memory device is mounted and the new software modules prepared for use, the user must save all of his or her work in progress and the application program settings, and then wait during the period of time in which the computer reboots. What would be of greater utility to the user is a system wherein the applications may use the hot-mount devices to extend the functionality of the current application software without the constant need to reboot.
Therefore, for all of the foregoing reasons, an improved system and method are needed for dynamically updating software-driven features in an electronic imaging device.